package cn.com.jinhao.hotline.commons.vo.business.dispatch;

import cn.com.jinhao.hotline.commons.vo.BaseRequestVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.persistence.Column;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.math.BigDecimal;
import java.util.Date;

/**
 * hotline-spring-cloud
 * <p>Description: </p>
 *
 * @author ShaneMew
 * @version 1.0
 * @date 2020/6/9
 * @since 2020/6/9
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel(value = "DispatchRequestVO", description = "派单入参类")
public class DispatchRequestVO extends BaseRequestVO {
    public interface Create{}
    public interface Update{}

    /**
     * 事件编码
     */
    @ApiModelProperty(value = "事件编码")
    @NotNull(message = "事件编码不能为空")
    protected String eventInformationCode;

    /**
     * 承办
     */
    @ApiModelProperty(value = "承办")
    private String evas;

    /**
     * 派单单位编码
     */
    @ApiModelProperty(value = "派单单位编码")
    @NotEmpty(message = "派单单位编码不能为空")
    @Pattern(regexp = "^[0-9]*$", message = "派单单位编码必须为数字")
    private String stDeptCodeA;

    /**
     * 派单单位
     */
    @ApiModelProperty(value = "派单单位")
    private String stDeptDeptA;

    /**
     * 派单人编码
     */
    @ApiModelProperty(value = "派单人编码")
    @NotEmpty(message = "派单人编码不能为空")
    @Pattern(regexp = "^[0-9]*$", message = "派单人编码必须为数字")
    private String stOperCodeA;

    /**
     * 派单人
     */
    @ApiModelProperty(value = "派单人")
    private String stOperOperA;

    /**
     * 承办单位编码
     */
    @ApiModelProperty(value = "承办单位编码")
    @NotEmpty(message = "承办单位编码不能为空")
    @Pattern(regexp = "^[0-9]*$", message = "承办单位编码必须为数字")
    private String stDeptCodeB;

    /**
     * 承办单位
     */
    @ApiModelProperty(value = "承办单位")
    private String stDeptDeptB;

    /**
     * 承办人编码
     */
    @ApiModelProperty(value = "承办人编码")
    private String stOperCodeB;

    /**
     * 承办人
     */
    @ApiModelProperty(value = "承办人")
    private String stOperOperB;

    /**
     * 承办联系人编码
     */
    @ApiModelProperty(value = "承办联系人编码")
    private String stTlbkCode;

    /**
     * 承办联系人
     */
    @ApiModelProperty(value = "承办联系人")
    private String stTlbkTlbk;

    /**
     * 派单途径编码
     */
    @ApiModelProperty(value = "派单途径编码")
    private String dispatchWayCode;

    /**
     * 派单途径
     */
    @ApiModelProperty(value = "派单途径")
    private String dispatchWay;

    /**
     * 紧急程度编码
     */
    @ApiModelProperty(value = "紧急程度编码")
    private String urgencyLevelCode;

    /**
     * 紧急程度
     */
    @ApiModelProperty(value = "紧急程度")
    private String urgencyLevel;

    /**
     * 附加通知号码
     */
    @ApiModelProperty(value = "附加通知号码")
    private String attentionPhone;

    /**
     * 超期日期
     */
    @ApiModelProperty(value = "超期日期")
    private Date expireDatetime;

    /**
     * 主办单位
     */
    @ApiModelProperty(value = "主办单位")
    private Short isld = 0;

    /**
     * 派单日期
     */
    @ApiModelProperty(value = "派单日期")
    private Date dispatchDatetime;

    /**
     * 是否拒绝
     */
    @ApiModelProperty(value = "是否拒绝")
    private Short deny = 0;

    /**
     * 拒绝日期
     */
    @ApiModelProperty(value = "拒绝日期")
    private Date denyDatetime;

    /**
     * 拒绝理由
     */
    @ApiModelProperty(value = "拒绝理由")
    private String denyCause;

    /**
     * 是否撤回
     */
    @ApiModelProperty(value = "是否撤回")
    private Short reject = 0;

    /**
     * 撤回日期
     */
    @ApiModelProperty(value = "撤回日期")
    private Date rejectDatetime;

    /**
     * 撤回理由
     */
    @ApiModelProperty(value = "撤回理由")
    private String rejectCause;

    /**
     * 是否接单
     */
    @ApiModelProperty(value = "是否接单(0:否 1:是)", allowEmptyValue = true, allowableValues = "0,1")
    private Short isAccept;

    /**
     * 是否催办
     */
    @ApiModelProperty(value = "是否催办(0:否 1:是)", allowEmptyValue = true, allowableValues = "0,1")
    private Short isUrge = 0;

    /**
     * 是否督办
     */
    @ApiModelProperty(value = "是否督办(0:否 1:是)", allowEmptyValue = true, allowableValues = "0,1")
    private Short isSerAndHandle = 0;

    /**
     * 是否延期
     */
    @ApiModelProperty(value = "是否延期(0:否 1:是)", allowEmptyValue = true, allowableValues = "0,1")
    private Short isDelay = 0;

    /**
     * 是否反馈
     */
    @ApiModelProperty(value = "是否反馈(0:否 1:是)", allowEmptyValue = true, allowableValues = "0,1")
    private Short isFeedback = 0;

    /**
     * 是否办结
     */
    @ApiModelProperty(value = "是否办结(0:否 1:是)", allowEmptyValue = true, allowableValues = "0,1")
    private Short isFinish = 0;

    /**
     * 是否超期
     */
    @ApiModelProperty(value = "是否超期(0:否 1:是)", allowEmptyValue = true, allowableValues = "0,1")
    private Short isEpire = 0;

    /**
     * 是否回访
     */
    @ApiModelProperty(value = "是否回访(0:否 1:是)", allowEmptyValue = true, allowableValues = "0,1")
    private Short isVisit = 0;

    /**
     * 是否重派单
     */
    @ApiModelProperty(value = "是否重派单")
    private Short isReplyDispatch = 0;

    /**
     * 是否撤单
     */
    @ApiModelProperty(value = "是否撤单")
    private Short isCancel = 0;

    /**
     * 已读
     */
    @ApiModelProperty(value = "已读")
    private Short read = 0;




    /**
     * 是否有反馈
     */
    @ApiModelProperty(value = "是否有反馈")
    private BigDecimal hasFeedback;


    /**
     * 派单内容
     */
    @ApiModelProperty(value = "派单附言")
    private String dispatchDesc;
}
